<?

class table_givenarticles extends core_object{

    protected 
        $_db    = "",
        $_table = __CLASS__; //очень важное поле. содержит имя таблицы блогов
                            
    //функция описания мета свойств объекта. Эти свойства автоматически запишут себя в базу при необъодимости и прочитают
    public function _init()
    {
        parent::_init(); //очень важно вызывать parent :: _init() в самом начале функции
        
        $this->_properties["article"] = new core_type_string(255);
        $this->_properties["amount"] = new core_type_float(255);
        $this->_properties["amount_rub"] = new core_type_float(255);
        $this->_properties["crb"] = new core_type_float(255);
        $this->_properties["account"] = new core_type_string(255);
        $this->_properties["dealer_id"] = new core_type_integer(11);         
        $this->_properties["money_system"] = new core_type_string(255);
        
        $this->_properties["date"] = new core_type_timestamp(11);         
        //$this->_properties["order"]->auto_increment = true;

    }
    
    /**
    * Была ли произведена оплата по параметрам с такой-то даты
    * Применяется для защиты от повторных платежей
    * 
    * @param mixed $article
    * @param double $amount
    * @param mixed $account
    * @param mixed $timestamp_from дата, с которй нужно смотреть платежи, по умолчанию - час назад
    */
    static public function isArticleGiven($article, double $amount, $account, $timestamp_from = false){
        if(!$timestamp_from) $timestamp_from = strtotime("-1 hour");
        
        $q = new DQ();
        $q->from(__CLASS__);
        $q->where("article='{$article}'");
        $q->and_("amount='{$amount}'");
        $q->and_("account='{$account}'");
        $q->and_("date >= '".date('c', $timestamp_from)."'");
        return (boolean)$q->row();
    }
    
}
?>